When storing data, it is often desirable to have the data stored in multiple locations. Multiple storage locations ensure accessibility should one or more of the locations become unavailable, and can, in some cases, provide for increased customization in how the data is stored and/or retrieved. However, storing the data at multiple locations, whether those locations are physically distinct or are co-located partitions of a single data storage device, often leads to delays in both storage and recovery of data. These delays often originate in the duplication of instructions and/or data for each location. While for relatively small data sizes these duplication delays may be negligible to a given user, as the size of the data increases any duplication delay in storing or retrieving data can result in delays that can be detected by the user.
With cloud computing and network based storage services, these delays can impact customer perceptions of the service. A network based storage service allows users to store, access, and manipulate data on databases and servers maintained across a network, thereby freeing users from being concerned with where the data will be physically stored while giving users near instantaneous access to the data from virtually any network access point. However, users using network based storage services generally want access to their data to be near instantaneous, not delayed or slow. When customers begin to experience substantial delays in storing and retrieving data, customer confidence and satisfaction wanes.
Standard data transfer protocols utilize communication layers and levels, such as the physical level, the frame level, and the packet level, to indicate where each piece of data is sent. Each layer results in increased information being added to the transmitted packets as headers, indicating where the data is being transmitted to, and depending on the protocol, where the data is being transmitted from. These headers are then “unwrapped” and interpreted one layer at a time for each and every frame of the data being communicated until the data arrives at its destination, at which point a response or an acknowledgment signal can be sent. When considering the overall use of network bandwidth, the header information associated with each layer can result in significant bandwidth consumption, and ultimately result in extra costs, delays, or communication time.